import pandas as pd

def cut_text(raw_text, max_len, pre_len, post_len):
    """截断文本
    
    Args:
        raw_text: 原始文本
        max_len: 最大长度
        pre_len: 保留前部分长度
        post_len: 保留后部分长度
    
    Returns:
        str: 截断后的文本
    """
    temp_list = raw_text.split()
    raw_len = len(temp_list)
    if raw_len > max_len:
        return ' '.join(temp_list[:pre_len] + temp_list[raw_len-post_len:])
    return raw_text

def process_cut_text(input_path, output_path, max_len=3000, pre_len=1500, post_len=1500):
    """处理并保存截断后的文本
    
    Args:
        input_path: 输入文件路径
        output_path: 输出文件路径
        max_len: 最大长度
        pre_len: 保留前部分长度
        post_len: 保留后部分长度
    """
    df = pd.read_csv(input_path, sep='\t')
    df['cut_text'] = df['text'].apply(
        lambda x: cut_text(x, max_len, pre_len, post_len)
    )
    df.to_csv(output_path, sep='\t', index=False, columns=['cut_text']) 